package com.shoping.web.component.factory;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;
import org.springframework.context.annotation.Configuration;

/**
 * 这个类只有一个触发点，发生在 test 的实例化之后，注入属性之前，也就是 Setter 之前。这个类的扩展点方法为setBeanFactory，
 * 可以拿到BeanFactory这个属性。
 * <p>
 * 使用场景为，你可以在 test 实例化之后，但还未初始化之前，拿到 BeanFactory，在这个时候，可以对每个 test 作特殊化的定制。
 * 也或者可以把BeanFactory拿到进行缓存，日后使用。
 */
@Slf4j
@Configuration
public class MyBeanFactoryAware implements BeanFactoryAware {

    @Override
    public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
        log.info("-----测试8【test 实例化之后，填充属性前】.BeanFactoryAware---");
    }

}
